SUMMARY:
It loads a stored address, the old value that was stored after it, and the current value at that address.
Depending on the rules you set for comparing the new and old values, the result will either be deleted or the new value will be saved.


200ffe58 8dea0000 lw t2, $0000(t7)            Load a stored result's address.
200ffe5c 1140001b beq t2, zero, $000ffecc     If the loaded result's address is 0, then it has finished comparing all of the stored results.
{
        OR LOAD SIGNED BYTE
200ffe60 81eb0004 lb t3, $0004(t7)            Load that stored address's old signed byte's value.
        OR LOAD UNSIGNED BYTE
200ffe60 91eb0004 lbu t3, $0004(t7)           Load that stored address's old unsigned byte's value.
        OR LOAD 2 SIGNED BYTES
200ffe60 85eb0004 lh t3, $0004(t7)            Load that stored address's old 2 signed bytes' value.
        OR LOAD 2 UNSIGNED BYTES
200ffe60 95eb0004 lhu t3, $0004(t7)           Load that stored address's old 2 unsigned bytes' value.
        OR LOAD 4 SIGNED BYTES
200ffe60 8deb0004 lw t3, $0004(t7)            Load that stored address's old 4 signed bytes' value.
        OR LOAD 4 UNSIGNED BYTES
200ffe60 9deb0004 lwu t3, $0004(t7)           Load that stored address's old 4 unsigned bytes' value.
}
{
        Make This The Same As The Above Width
        OR LOAD SIGNED BYTE
200ffe64 814c0000 lb t4, $0000(t2)            Load that stored address's current signed byte's value.
        OR LOAD UNSIGNED BYTE
200ffe64 914c0000 lbu t4, $0000(t2)           Load that stored address's current unsigned byte's value.
        OR LOAD 2 SIGNED BYTES
200ffe64 854c0000 lh t4, $0000(t2)            Load that stored address's current 2 signed bytes' value.
        OR LOAD 2 UNSIGNED BYTES
200ffe64 954c0000 lhu t4, $0000(t2)           Load that stored address's current 2 unsigned bytes' value.
        OR LOAD 4 SIGNED BYTES
200ffe64 8d4c0000 lw t4, $0000(t2)            Load that stored address's current 4 signed bytes' value.
        OR LOAD 4 UNSIGNED BYTES
200ffe64 9d4c0000 lwu t4, $0000(t2)           Load that stored address's current 4 unsigned bytes' value.
}
{
        OR REMOVE RESULT IF IT CHANGED
200ffe68 556c001e bnel t3, t4, $000ffee4      Remove the result if it's old value and it's current value are different.
        OR REMOVE RESULT IF IT DIDN'T CHANGE
200ffe68 516c001e beql t3, t4, $000ffee4      Remove the result if it's old value and it's current value are the same.
        OR REMOVE RESULT IF IT DIDN'T INCREASE
200ffe68 018b082a slt at, t4, t3              Remove the result if it's current value isn't less than it's old value.
200ffe6c 5020001d beql at, zero, $000ffee4    The above sentence explains it perfectly.
        OR REMOVE RESULT IF IT DIDN'T DECREASE
200ffe68 016c082a slt at, t3, t4              Remove the result if it's current value isn't greater than it's old value.
200ffe6c 5020001d beql at, zero, $000ffee4    The above sentence explains it perfectly.
        OR REMOVE RESULT IF IT DIDN'T INCREASE BY vvvvvvvv
100ffe6a 3c01vvvv lui at, $vvvv               Set how much the value should increase by.
100ffe6e 3421vvvv ori at, at, $vvvv           Set how much the value should increase by.
    {
            OR FOR SIGNED BYTES
    200ffe70 018b5822 sub t3, t4, t3          It subtracts the old signed value from the new signed value to get the difference.  If the difference isn't equal to vvvvvvvv, the result will be removed.
            OR FOR UNSIGNED BYTES
    200ffe70 018b5823 subu t3, t4, t3         It subtracts the old unsigned value from the new unsigned value to get the difference..  If the difference isn't equal to vvvvvvvv, the result will be removed.
    }
200ffe74 542b001b bnel at, t3, $000ffee4      The above 2 choices explain it perfectly.
        OR REMOVE RESULT IF IT DIDN'T DECREASE BY vvvvvvvv
100ffe6a 3c01vvvv lui at, $vvvv               Set how much the value should decrease by.
100ffe6e 3421vvvv ori at, at, $vvvv           Set how much the value should decrease by.
    {
            OR FOR SIGNED BYTES
    200ffe70 016c5822 sub t3, t3, t4          It subtracts the new signed value from the old signed value to get the difference.  If the difference isn't equal to vvvvvvvv, the result will be removed.
            OR FOR UNSIGNED BYTES
    200ffe70 016c5823 subu t3, t3, t4         It subtracts the new unsigned value from the old unsigned value to get the difference.  If the difference isn't equal to vvvvvvvv, the result will be removed.
    }
200ffe74 542b001b bnel at, t3, $000ffee4      The above 2 choices explain it perfectly.
}

200ffe7c 100afff6 beq zero, t2, $000ffe58     This is here to check if a result was removed.  If a result was removed, then t2 should be 0 since that was the last written address value, and this will cause it to check the next result which shifted down 1 result.  If no result was deleted, the address won't be 0 and the new value for the address will be saved.
200ffe80 adec0004 sw t4, $0004(t7)            Store the address's new value.
200ffe84 1000fff4 beq zero, zero, $000ffe58   Go back up to check the next result.
200ffe88 25ef0008 addiu t7, t7, $0008         Add 8 to get to the next result to check.